package com.kyh.util;

import java.math.BigDecimal;

/**
 * 浮点型处理
 * @author user
 *
 */
public class DoubleUtils {
	/**
	 * 浮点型保存N位数，剩下的舍弃
	 * @param value
	 * @param scale
	 * @return
	 */
	public static double doubleDown(Double value, int scale) {
		BigDecimal b = new BigDecimal(value + "");   
		double df = b.setScale(scale, BigDecimal.ROUND_DOWN).doubleValue();  
		
		return df;
	}
	
	/**
	 * BigDecimal保存N位数，剩下的舍弃
	 * @param value
	 * @param scale
	 * @return
	 */
	public static BigDecimal bigdecimalDown(BigDecimal b, int scale) {
		return b.setScale(scale, BigDecimal.ROUND_DOWN);  
	}
	
	/**
	 * 浮点型保存N位数，四舍五入
	 * @param value
	 * @param scale
	 * @return
	 */
	public static double doubleHalfUp(Double value, int scale) {
		BigDecimal b = new BigDecimal(value + "");   
		double df = b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();  
		
		return df;
	}
	
	/**
	 * BigDecimal保存N位数，剩下的+1
	 * @param value
	 * @param scale
	 * @return
	 */
	public static BigDecimal bigdecimalUp(BigDecimal value, int scale) {
		BigDecimal b = new BigDecimal(value + "");   
		return b.setScale(scale, BigDecimal.ROUND_UP);
	}
}
